// 剑指 Offer 05. 替换空格
// 输入：s = "We are happy."
// 输出："We%20are%20happy."
// 原生API split/join
// 思路：将字符串转换为数组，然后统计其中的空格数量。
// 根据空格数量和原有字符串有效字符长度，计算出刚好存放替换后的字符长度的数组。
// 创建两个指针，一个指数组末尾，一个指字符串有效位的末尾，实现原地修改。


/**
 * @param {string} s
 * @return {string}
 */
 var replaceSpace = function(s) {
    // 字符串转为数组
   const strArr = Array.from(s);
   let count = 0;
 
   // 计算空格数量
   for(let i = 0; i < strArr.length; i++) {
     if (strArr[i] === ' ') {
       count++;
     }
   }
 
   let left = strArr.length - 1;
   let right = strArr.length + count * 2 - 1;
 
   while(left >= 0) {
     if (strArr[left] === ' ') {
       strArr[right--] = '0';
       strArr[right--] = '2';
       strArr[right--] = '%';
       left--;
     } else {
       strArr[right--] = strArr[left--];
     }
   }
 
   // 数组转字符串
   return strArr.join('');
 };